package threadsafe;

/**
 * Created by 5406160@qq.com on LiBoWen 李博闻.
 *
 * @ClassName : SellTicket2
 * @Author : 54061
 * @Date: 2022/2/15 18:13
 */
public class SellTicket2 implements Runnable{
    //总票数 : 共享数据
    int ticket = 100;
    @Override
    public void run() {
        //火车站不关门
        while(true){
            try {
                this.sell();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    }
    //同步方法
    //同步方法的锁对象是谁this
    //静态同步方法的锁对象是谁   本类的字节码对象.class对象
    public synchronized void sell() throws InterruptedException {
        //判断
        if (ticket >0){
            Thread.sleep(100);

        }
        //买票
        System.out.println(Thread.currentThread().getName()+"买了第"+ticket+"张票");
        //真正的买票
        ticket--;
    }
}
